Until recently, communication systems built around the Open Systems Interconnect (OSI) reference model or the Internet architecture were designed to support point-to-point (unicast) services. Presently, one of the most pressing needs for enhanced communication protocols comes from multipoint, or group, applications. The multipoint applications encompass a wide range of applications including software distribution, replicated database update, command and control systems and audio/video conferencing.
A multicast is generally the transmission of data from a single sender to multiple receivers. Multicasting provides an efficient method of disseminating data from a sender to a group of receivers. Instead of sending a separate copy of the data to each individual receiver, the sender sends a single copy to all the receivers. A multicast "tree" is set up in the data communication network with the sender as the "root" node and the receivers as the "leaf" nodes. Data generated by the sender flows through the multicast tree, transversing each tree edge exactly once. For a better understanding of multicasting, see "Multipoint Communication: A Survey of Protocols, Functions, and Mechanisms" by Christophe Diot et al., IEEE Journal on Selected Areas in Communications, Vol. 15, No. 3, April 1997, pp. 277-290, which is herein incorporated by reference.
The reliable distribution of data using the multicast tree in an unreliable network is not guaranteed. Existing protocols [e.g., Internet Protocol(IP), Connectionless Network Protocol (CLNP) and User Datagram Protocol (UDP)] are sufficient for those applications that can be satisfied by a connectionless, relatively unreliable, multicast communication support. A more reliable multicast, however, is required in situations such as in a distributed interactive simulation (DIS) environment or in collaborative applications. Reliable multicast protocols are not new in the area of distributed and satellite broadcast systems. Most of these protocols, however, apply to local area networks and do not scale well in wide area networks.
To address the need for reliable multicast in wide area networks, many transport protocols have been proposed and developed. Most of the focus, however, of the work done in developing reliable multicast schemes and protocols has concentrated primarily on methods for error recovery. For example, one particular transport protocol that has been developed to address the need for more reliable data transmission is the Reliable Multicast Transport Protocol (RMTP). RMTP is designed to provide sequenced, lossless delivery of a data stream, or packets, from one sender to a group of receivers. RMTP is based on a multi-level hierarchical approach in which the receivers are grouped in a hierarchy of local regions. This hierarchical approach allows for the error recovery methodology to be scalable. A designated receiver (DR) in each local region is responsible for sending acknowledgments (ACKs) periodically to the sender, for processing ACKs from the receivers in its region and for retransmitting lost packets to the corresponding receivers. For a more detail understanding of RMTP, see "Reliable Multicast Transport Protocol (RMTP)" by Sanjoy Paul et al., IEEE Journal on Selected Areas in Communications, Vol. 15, No. 3, April 1997, pp. 407-420, which is herein incorporated by reference.
Efforts to develop congestion control methodologies for multicast have been directed primarily in the areas of audio and video multicast transmissions. With voice and audio multicasts, the approach to congestion control has been to receive less data packets, i.e., some of the data packets are not sent to a receiver that decides to ignore them, in order to reduce congestion. While this approach might be satisfactory in the context of voice and audio multicasts, e.g., with video the receiver will still be able to form a coarse or lower resolution picture, for reliable multicast, discarding some data packets is unacceptable.
Accordingly, what is needed in the art are improved methods for controlling congestion that may occur due to a multicast through a computer network. In particular, what is needed in the art is a method for congestion control in reliable multicast transport protocols.